package com.itheima.mapper;

import com.itheima.pojo.ItemSpu;
import com.itheima.qo.ItemSpuQuery;
import com.itheima.qo.PageQuery;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface ItemSpuMapper {
    // 分页查询SPU列表
    List<ItemSpu> listByPage(@Param("pageQuery") PageQuery<ItemSpuQuery> pageQuery);

    // 根据分类ID查询SPU列表
    List<ItemSpu> listByCategoryId(@Param("categoryId1") Integer categoryId1,
                                   @Param("categoryId2") Integer categoryId2,
                                   @Param("categoryId3") Integer categoryId3);

    // 查询SPU总数量
    int count(@Param("title") String title);

    // 根据分类ID查询SPU总数量
    int countByCategoryId(@Param("categoryId1") Integer categoryId1,
                          @Param("categoryId2") Integer categoryId2,
                          @Param("categoryId3") Integer categoryId3);

    // 根据ID查询SPU（包含关联的SKU）
    ItemSpu getById(Long id);

    // 添加SPU
    void insert(ItemSpu spu);

    // 更新SPU
    void update(ItemSpu spu);

    // 删除SPU（逻辑删除）
    void deleteById(Long id);
}